#!/usr/bin/perl -w
## check_ingredients.pl for  in /media/Partage/Epitech/Projets/ZappyBBC/svn/roultabobitch-skl/test
## 
## Made by aurelien dorey
## Login   <dorey_a@epitech.net>
## 
## Started on  Mon Jul 11 23:52:34 2011 aurelien dorey
## Last update Wed Jul 13 16:01:24 2011 guillaume kizilian
##

use Switch;
use Data::Dumper;

my @Checkneed = ('1 0 0 0 0 0', '1 1 1 0 0 0', '2 0 1 0 2 0', '1 1 2 0 1 0', '1 2 1 3 0 0', '1 2 3 0 1 0', '2 2 2 2 2 1');
my $Checktemp = "linemate : 0, deraumere : 1, sibur : 1, mendiane : 0, phiras : 0, thystame : 0";
my @Checkingredients = ();
my $Checklevel = 3;
my @Checknb_ingredients = &get_nb_ingredients();

&check_ingredients();

## Recupere avec une regexp le nombre de chaque 
## ingredients et les concatenes dans une chaine
sub get_nb_ingredients() {
    my @val = ();
    (@val) =  split /[a-z :,]+/, $Checktemp;
    return @val;
}

## Recupere avec une regexp le nom de chaque ingredients
sub get_name_ingredients() {
    my @name = ();
    (@name) =  split /[: \d,]+/, $Checktemp;
}

## Verifie qu'il y est assez ou plus d'ingredient
## dans l'inventaire
sub check_nb_ingredients() {
    my $res = 1;
    my @lvl = split(/ /, $Checkneed[$Checklevel-2]);
    shift(@Checknb_ingredients);
    for (my $i = 0; $i <= 5; $i++) {
	if (int($Checknb_ingredients[$i]) < $lvl[$i]) {
	    $res = 0;
	}
    }
    return $res;
}

## Verifie si le nombre d'ingredients est suffisant pour passer 
## le niveau passe en parametre.
## Retoune 1 si oui, 0 dansle cas contraire
sub check_ingredients() {
    switch ($Checklevel) {
	case 2 {
	    if (&check_nb_ingredients() == 1)  {
		return 1;
	    } else {
		return 0;
	    }
	}
	case 3 {
	    if (&check_nb_ingredients() == 1)  {
		return 1;
	    } else {
		return 0;
	    }
	}
	case 4 {
	    if (&check_nb_ingredients() == 1)  {
		return 1;
	    } else {
		return 0;
	    }
	}
	case 5 {
	    if (&check_nb_ingredients() == 1)  {
		return 1;
	    } else {
		return 0;
	    }
	}
	case 6 {
	    if (&check_nb_ingredients() == 1)  {
		return 1;
	    } else {
		return 0;
	    }
	}
	case 7 {
	    if (&check_nb_ingredients() == 1)  {
		return 1;
	    } else {
		return 0;
	    }
	}
	case 8 {
	    if (&check_nb_ingredients() == 1)  {
		return 1;
	    } else {
		return 0;}
	}
	else {
	    return 0;
	}
    }
}
